All Packages  Class Hierarchy  This Package  Previous  Next  Index

Class com.sun.java.swing.SyntheticImage

java.lang.Object
   |
   +----com.sun.java.swing.SyntheticImage

public abstract class SyntheticImage
extends Object
implements ImageProducer
A helper class to make computing synthetic images a little easier. All you need to do is define a subclass that overrides computeRow to compute a row of the image. It is passed the y coordinate of the row and an array into which to put the pixels in standard ARGB format.

Normal usage looks something like this:

 Image i = new Image(new SyntheticImage(200, 100) {
       protected void computeRow(int y, int[] row) {
   	for(int i = width; --i>=0; ) {
   	    int grey = i*255/(width-1);
   	    row[i] = (255<<24)|(grey<<16)|(grey<<8)|grey;
   	}
       }
   }
  
This creates a image 200 pixels wide and 100 pixels high that is a horizontal grey ramp, going from black on the left to white on the right.

If the image is to be a movie, override isStatic to return false, y cycling back to 0 is computeRow's signal that the next frame has started. It is acceptable (expected?) for computeRow(0,r) to pause until the appropriate time to start the next frame.


Variable Index

 o height
 o pixMask
 o width

Constructor Index

 o SyntheticImage()
 o SyntheticImage(int, int)

Method Index

 o addConsumer(ImageConsumer)
 o computeRow(int, int[])
 o isConsumer(ImageConsumer)
 o isStatic()
 o nextFrame(int)
 o removeConsumer(ImageConsumer)
 o requestTopDownLeftRightResend(ImageConsumer)
 o startProduction(ImageConsumer)

Variables

 o width
 protected int width
 o height
 protected int height
 o pixMask
 public static final int pixMask

Constructors

 o SyntheticImage
 protected SyntheticImage()
 o SyntheticImage
 protected SyntheticImage(int w,
                          int h)

Methods

 o computeRow
 protected void computeRow(int y,
                           int row[])
 o addConsumer
 public synchronized void addConsumer(ImageConsumer ic)
 o isConsumer
 public synchronized boolean isConsumer(ImageConsumer ic)
 o removeConsumer
 public synchronized void removeConsumer(ImageConsumer ic)
 o startProduction
 public synchronized void startProduction(ImageConsumer ic)
 o isStatic
 protected boolean isStatic()
 o nextFrame
 public void nextFrame(int param)
 o requestTopDownLeftRightResend
 public void requestTopDownLeftRightResend(ImageConsumer ic)

All Packages  Class Hierarchy  This Package  Previous  Next  Index